home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TeX 1995 July
/
TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO
/
graphics
/
circuit_macros
/
darrow.m4
< prev
next >
Wrap
Text File
|
1994-03-13
|
2KB
|
56 lines
divert(-1)
darrow.m4
Macros for double lines and arrows
m4 <path>/darrow.m4 <diag>.m4 | dpic [-p] [-t] > <diag>.tex , or
m4 <path>/darrow.m4 <diag>.m4 | gpic [-t] > <diag>.tex
define(`HOMELIB_',`/u/aplevich/lib')
ifdef(`dir_',,`include(HOMELIB_/libgen.m4)')
define(`elen_',linewid)
divert(-1)
Close off line end
define(`dend',`{line from rvec_(0,-dlinewid/2) to rvec_(0,dlinewid/2)}')
Dline initialization
define(`eleminit_',`ifelse(`$1',,`eleng=elen_',
`rpoint_(`$1') dnl
eleng=sqrt(elendx*elendx + elendy*elendy)' )' dnl
) dnl
define(`dlineinit_',`eleminit_(`$1')
lwid=ifelse(`$4',,dlinewid,`$4')
llen=eleng ifelse(`$3',,,`-lwid/2') dnl
ifelse(`$2',,,`-lwid/2; move to rvec_(lwid/2,0)') ')
Line(line spec,start truncation,end truncation,width)
define(`dline',`dlineinit_(`$1',`$2',`$3',`$4')
{line from rvec_(0, lwid/2) to rvec_(llen, lwid/2)}
{line from rvec_(llen,-lwid/2) to rvec_(0,-lwid/2)}
line invis to rvec_(llen,0)')
Turn left, leaving current location at exit of corner
define(`dleft',`dnl
{line from rvec_(0,-dlinewid/2) to rvec_(dlinewid,-dlinewid/2) \
then to rvec_(dlinewid,dlinewid/2)}
line invis to rvec_(dlinewid/2,dlinewid/2)
define(`dir_',up__) manhattan dir_')
Turn right, leaving current location at exit of corner
define(`dright',`dnl
{line from rvec_(0, dlinewid/2) to rvec_(dlinewid, dlinewid/2) \
then to rvec_(dlinewid,-dlinewid/2)}
line invis to rvec_(dlinewid/2,-dlinewid/2)
define(`dir_',dn_) manhattan dir_')
Arrow(line spec,start truncation,end truncation,width)
define(`darrow',`dlineinit_(`$1',`$2',`$3',`$4')
{line from rvec_(0,lwid/2) to rvec_(llen-lwid*3/2,lwid/2) \
then to rvec_(llen-lwid*3/2,lwid) then to rvec_(llen,0) \
then to rvec_(llen-lwid*3/2,-lwid) then to rvec_(llen-lwid*3/2,-lwid/2) \
then to rvec_(0,-lwid/2)}
line invis to rvec_(llen,0)')
Construct tee, leaving current location at tee centre
define(`dtee',`move to rvec_(dlinewid/2,0); $1; move to rvec_(-dlinewid/2,0)
{line from rvec_(dlinewid,-dlinewid/2) to rvec_(dlinewid,dlinewid/2)}
{line from rvec_(0,-dlinewid/2) to rvec_(0,-dlinewid/2)}
{line from rvec_(0, dlinewid/2) to rvec_(0, dlinewid/2)}
move to rvec_(dlinewid/2,0)')
Standard width of lines
define(`dlinewid',`0.08')
divert